Managing data resources and efficient file management have become key components of any organization's information technology (“IT”) practice. Files are being generated, modified and disposed of, and keeping track of the flow of these data assets may require a large amount of dedicated computing resources. Additionally, an organization may need to preserve data assets in order to remain compliant with certain regulations.
In the past, an organization may have used a collection of independent computing workstations, with each workstation housing data for a single user account. However, as organizations have grown in size, it is more common to find network attached storage (“NAS”) systems for handling and managing data files. NAS systems centralize data storage, making it easier for an IT administrator to monitor and manage. In addition, NAS systems can provide workstations with access to greater data storage capacity.
Files on a NAS system may be arranged using folders and directories. An administrator may grant access to each NAS system user by creating a specific directory for each user called a “share.” A share is a portion of the NAS resource, and may be a virtual portion or an actual physical portion. In order to access their share, a user may direct his or her file browser or terminal shell to a specific directory with a path address to the share. The directory structure and path name conventions may vary depending upon the protocol used on the NAS system. Specifically, two NAS system protocols include the Common Internet File System (“CIFS”) (formerly Server Message Block or “SMB”), and the Network File System (“NFS”). It is well known in the art that each protocol has its own conventions and rules for performing certain tasks and organizing files.
No matter which NAS an organization adopts, it is still necessary that data stored in each file system be periodically migrated, synchronized or re-directed to optimize storage and NAS resources. Rather than tasking the NAS system with this responsibility, organizations have adopted storage virtualization systems. Storage virtualization systems have the ability to migrate data without disrupting the usage of that data during migration. Some storage virtualization systems can copy and move a file from one NAS system (the primary system) to another NAS storage device (the secondary system) while a user is working on that file. Some storage virtualization systems can re-direct file storage from a primary NAS system to a secondary NAS system without the user even knowing. The storage virtualization system abstracts the logical volume or file name from the physical location of the file. What is left on the primary NAS system is metadata or a pointer associated with each file that points to or describes the location of the actual content of the file. If the content is moved, then the metadata is updated by the storage virtualization system.
In order for a storage virtualization system to be fully effective, it must be able to: (1) communicate and be fully compatible with the primary NAS system; (2) follow files from the client to the share on the primary NAS system; (3) access these files and migrate them to the destination server; and (4) resolve the physical storage location for a file when it is given the logical location or symbolic link to that file. However, because different NAS systems adopt different protocols, a storage virtualization system may encounter problems when trying to manage multi-protocol data assets or NAS systems provided by multiple vendors.
One skilled in the relevant art will appreciate that different NAS systems may apply different protocols to refer to the locations of user shares. For example, some NAS systems may adopt a single “home” directory structure such that users can access their shares, or files within their shares, using logical names or symbolic syntax rather than physical or absolute path addresses. For example, some CIFS NAS systems substitute abbreviated path addresses for shares. A user's files will appear to reside in a single centralized share subdivided by user name or login name. The path address will lack the subdivisions that reveal the true location of the file. A user may only need to refer their share name in the home directory to access files, and the NAS system will resolve the logical path address and will direct the user to the true location of their share on the server (the absolute file path).
This type of NAS system may have an internal mapping database that lists the physical locations of a user's actual files. This mapping database may be shared by all applications associated with the NAS, such as the data mover agent. Alternatively, each application associated with the NAS may store its own mapping database that it uses to locate files. In either case, when a user attempts to access a particular share using a home directory name and user name, the NAS system will search a database to match these credentials to an absolute path address. If the home directory name and user name are found in the database, then the user is directed to the appropriate share as if the user entered the absolute path address. If the domain name and user name is not found, then the user will be denied access.
While this convention may ease file manipulation for the user of a primary NAS system, it makes it impossible for a storage virtualization system to access a user's files. The storage virtualization system does not have access to the mapping database or databases, and therefore cannot resolve the physical locations or absolute path addresses for NAS systems that adopt a single home directory or similar symbolic logical share syntax.
What is therefore needed is a way to enable storage virtualization systems to resolve true path addresses for NAS systems that utilize the home directory share convention. The solution must not be overly burdensome to existing NAS systems or the storage virtualization system. Further, the solution should maintain the transparency inherent in a storage virtualization system while mapping users to their actual shares.